A computing network comprises a number of computing systems that are capable of communicating one with another. The Internet is an example of the largest network, but there are often smaller networks such as corporate networks, Local Area Networks (LANs) and so forth. Each network will offer a number of services to other nodes in the network. To take advantage of those services, a network node first discovers at least some of the services that are available. One particular discovery mechanism is to first optionally identify the type or scope of service needed, and then dispatch a service discovery request. The services that are able to provide the service then respond to the discover request.
For instance, Web Services (often abbreviated as WS) is a comprehensive collection of specifications that permits a robust interaction of computing services employed in a network environment. The most relevant WS specification as pertaining to service discovery requests is called WS-Discovery.
The WS-Discovery defines a discovery protocol to locate web services. Specifically, according to this protocol, a client (which may itself be a service in a different context) constructs a Probe request that specifies the type of service and/or the scope of service desired. The client then transmits (perhaps multicasts) the Probe request throughout the network.
According to this protocol, the services receive the Probe request, and then each determines whether or not they provide a service that satisfies the type and/or scope criteria specified in the Probe request. If the service satisfies the specified criteria, the service sends a ProbeMatch response representing a search result back to the client.
The client terminates the search operation after getting a certain number of results or after a certain time duration. Any ProbeMatch search results that are received after the client terminates the search operation are discarded by the client. A connectionless protocol (such as User Datagram Protocol (UDP)) is used for the search operation. Accordingly, the service does not know whether or not the search has terminated or not. Thus, the service sends the ProbeMatch response at the time the service determines that the service satisfies the criteria specified in the Probe request.